<?php

// 通用函数文件

// 读取应用数据

function getApps() {

    $data = file_get_contents(DATA_FILE);

    return unserialize($data) ?: [];

}

// 保存应用数据

function saveApps($apps) {

    file_put_contents(DATA_FILE, serialize($apps));

}

// 检查是否登录

function isLoggedIn() {

    return isset($_SESSION['admin_logged_in']) && $_SESSION['admin_logged_in'];

}

// 获取应用详情

function getAppById($id) {

    $apps = getApps();

    foreach ($apps as $app) {

        if ($app['id'] === $id) {

            return $app;

        }

    }

    return null;

}

// 重定向函数

function redirect($url) {

    header("Location: $url");

    exit;

}

// 获取相关应用（排除当前应用）

function getRelatedApps($currentAppId, $limit = 4) {

    $apps = getApps();

    $related = [];

    

    foreach ($apps as $app) {

        if ($app['id'] !== $currentAppId) {

            $related[] = $app;

            if (count($related) >= $limit) {

                break;

            }

        }

    }

    

    return $related;

}

// 高亮显示关键词

function highlightKeyword($text, $keyword) {

    if (empty($keyword)) {

        return $text;

    }

    

    // 截断过长的文本

    if (strlen($text) > 150) {

        $text = substr($text, 0, 150) . '...';

    }

    

    $pattern = '/' . preg_quote($keyword, '/') . '/i';

    return preg_replace($pattern, '<mark style="background: #fff3cd; padding: 2px 0;">$0</mark>', $text);

}

// 搜索应用

function searchApps($keyword) {

    $apps = getApps();

    $results = [];

    

    if (empty($keyword)) {

        return $apps;

    }

    

    foreach ($apps as $app) {

        // 搜索应用名称、介绍、更新内容

        if (stripos($app['name'], $keyword) !== false ||

            stripos($app['description'], $keyword) !== false ||

            stripos($app['update_content'], $keyword) !== false) {

            $results[] = $app;

        }

    }

    

    return $results;

}

?>